home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xa;
-
- import com.extensibility.app.DialogFactory;
- import com.extensibility.app.UI;
- import com.extensibility.rock.RDialog;
- import com.extensibility.util.Debug;
- import com.extensibility.xml.DTDParser;
- import com.extensibility.xml.ParserException;
- import com.extensibility.xml.URI;
- import java.awt.BorderLayout;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Cursor;
- import java.awt.Dialog;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Window;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.BorderFactory;
- import javax.swing.Box;
- import javax.swing.DefaultListModel;
- import javax.swing.Icon;
- import javax.swing.JButton;
- import javax.swing.JCheckBox;
- import javax.swing.JComboBox;
- import javax.swing.JComponent;
- import javax.swing.JDialog;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTabbedPane;
- import javax.swing.JTextField;
- import javax.swing.border.EmptyBorder;
- import javax.swing.event.ListSelectionListener;
- import javax.swing.text.JTextComponent;
-
- public class CellDialog extends RDialog implements ItemListener {
- protected static final int MODE_DEFINE = 1;
- protected static final int MODE_EDIT = 2;
- protected static final int MODE_NONE = 0;
- JLabel lblPrompt;
- JButton btnSave;
- JButton btnCancel;
- JButton btnApply;
- JButton btnDelete;
- JButton btnInsert;
- JScrollPane scroll;
- JPanel btnPanel;
- JLabel lblOwner;
- String orgValue;
- JTabbedPane tabs;
- JTextField txtOwner;
- JComboBox popOwner;
- JComponent heading;
- int mode;
- String ownerName;
- boolean canceled;
- JTextComponent editor;
- JCheckBox chkOpenModel;
- JComponent enclosure;
- SchemaDoc doc;
- boolean applied;
- boolean openModel = false;
- protected ListSelectionListener listSelectionListener = new 1(this);
- URI uri;
-
- public CellDialog(JFrame var1, SchemaDoc var2) {
- super(var1, true);
- this.doc = var2;
- }
-
- protected JComponent createEnclosure(JComponent var1) {
- return null;
- }
-
- protected JTextComponent createEditor() {
- Debug.assertAbstract();
- return null;
- }
-
- protected JPanel createButtonPanel() {
- Debug.assertAbstract();
- return null;
- }
-
- protected String getListTab(int var1) {
- return null;
- }
-
- protected Enumeration getList(int var1) {
- return null;
- }
-
- public boolean getOpenModel() {
- return this.openModel;
- }
-
- public void setOpenModel(boolean var1) {
- this.openModel = var1;
- this.chkOpenModel.setSelected(var1);
- this.chkOpenModel.setVisible(true);
- this.chkOpenModel.setEnabled(true);
- }
-
- private void doOpenModel(boolean var1) {
- this.openModel = var1;
- }
-
- protected void insertName(String var1) {
- this.editor.replaceSelection(var1);
- }
-
- protected boolean doSave() {
- if (this.getMode() == 1 && !DTDParser.isName(this.getCellOwner())) {
- DialogFactory.stop(this, (new ParserException(224, this.getCellOwner())).getMessage());
- return false;
- } else {
- return true;
- }
- }
-
- protected void doDelete() {
- ((Component)this).setVisible(false);
- ((Window)this).dispose();
- }
-
- protected void doApply() {
- this.applied = true;
- }
-
- protected void doCancel() {
- ((Component)this).setVisible(false);
- this.canceled = true;
- ((Window)this).dispose();
- }
-
- protected void setCellOwner(String var1, String var2) {
- this.ownerName = var1;
- this.orgValue = this.getText();
- }
-
- protected String getCellOwner() {
- if (this.mode == 2) {
- return this.ownerName;
- } else {
- return this.mode == 1 ? this.txtOwner.getText() : this.ownerName;
- }
- }
-
- public SchemaDoc getSchemaDoc() {
- return this.doc;
- }
-
- protected int getMode() {
- return this.mode;
- }
-
- public boolean commitPendingEdits(boolean var1) {
- return true;
- }
-
- public void itemStateChanged(ItemEvent var1) {
- if (this.commitPendingEdits(true)) {
- if (!this.getText().equals(this.orgValue)) {
- int var2 = DialogFactory.saveChanges(this, new String[]{this.ownerName});
- if (var2 == 2) {
- return;
- }
-
- if (var2 == 0 && !this.doSave()) {
- return;
- }
- }
-
- this.setCellOwner((String)var1.getItem(), (String)null);
- }
- }
-
- public void prepare(String var1, String var2, Object var3) {
- this.lblPrompt = new JLabel(var2);
- if (var3 == null) {
- this.txtOwner = UI.createTextField(UI.getString("cell.dialog.enter.here"));
- this.txtOwner.setMinimumSize(new Dimension(200, 5));
- this.txtOwner.setSize(200, 5);
- this.heading = this.txtOwner;
- this.mode = 1;
- } else if (var3 instanceof String) {
- this.lblOwner = new JLabel((String)var3);
- this.heading = this.lblOwner;
- this.mode = 0;
- } else if (var3 instanceof Enumeration) {
- Vector var4 = new Vector();
-
- while(((Enumeration)var3).hasMoreElements()) {
- var4.addElement(((Enumeration)var3).nextElement());
- }
-
- this.popOwner = new JComboBox(var4);
- this.popOwner.setEditable(false);
- this.popOwner.addItemListener(this);
- this.ownerName = (String)this.popOwner.getSelectedItem();
- this.heading = this.popOwner;
- this.mode = 2;
- } else {
- Debug.assert(false, "Unknown headingObj");
- }
-
- this.editor = this.createEditor();
- this.editor.setBorder(new EmptyBorder(4, 4, 4, 4));
- if (this.orgValue != null) {
- this.editor.setText(this.orgValue);
- }
-
- this.editor.setCursor(new Cursor(2));
- this.btnPanel = this.createButtonPanel();
- if (this.btnPanel != null) {
- this.btnPanel.setVisible(true);
- }
-
- this.btnSave = new JButton(UI.getString("cell.dialog.ok"));
- this.btnSave.setMnemonic(UI.getMnemonic("cell.dialog.ok"));
- this.btnSave.addActionListener(new 2(this));
- this.chkOpenModel = new JCheckBox(UI.getString("dialog.model.open"));
- this.chkOpenModel.addItemListener(new 3(this));
- this.chkOpenModel.setVisible(false);
- this.chkOpenModel.setEnabled(false);
- this.btnApply = new JButton(UI.getString("dialog.apply"));
- this.btnApply.setMnemonic(UI.getMnemonic("dialog.apply"));
- this.btnApply.addActionListener(new 4(this));
- this.btnApply.setVisible(this.mode == 0);
- this.btnDelete = new JButton(UI.getString("dialog.delete"));
- this.btnDelete.setMnemonic(UI.getMnemonic("dialog.delete"));
- this.btnDelete.addActionListener(new 5(this));
- this.btnDelete.setVisible(this.mode == 2);
- this.btnCancel = new JButton(UI.getString("dialog.cancel"));
- this.btnCancel.setMnemonic(UI.getMnemonic("dialog.cancel"));
- this.btnCancel.addActionListener(new 6(this));
- int var9 = 0;
-
- while(true) {
- String var5 = this.getListTab(var9);
- if (var5 == null) {
- this.scroll = new JScrollPane(this.editor);
- JPanel var10 = new JPanel(new GridBagLayout());
- GridBagConstraints var12 = new GridBagConstraints();
- var12.ipadx = 8;
- ((Container)var10).add(this.lblPrompt, var12);
- var12.gridx = 1;
- var12.fill = 2;
- var12.weightx = (double)0.75F;
- ((Container)var10).add(this.heading, var12);
- ((JComponent)var10).setBorder(BorderFactory.createEmptyBorder(8, 12, 8, 12));
- Object var13 = new JPanel(new BorderLayout());
- if (this.btnPanel != null) {
- JPanel var14 = new JPanel(new FlowLayout(0));
- ((Container)var14).add(this.btnPanel);
- ((JComponent)var14).setBorder(BorderFactory.createEmptyBorder(0, 8, 0, 0));
- ((Container)var13).add(var14, "North");
- }
-
- ((JDialog)this).getContentPane().setLayout(new BorderLayout());
- if (this.tabs != null) {
- this.tabs.setBorder(BorderFactory.createEmptyBorder(0, 0, 8, 8));
- ((Container)var13).add(this.tabs, "East");
- }
-
- this.scroll.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 8, 8, 8), this.scroll.getBorder()));
- ((Container)var13).add(this.scroll, "Center");
- JPanel var15 = new JPanel(new FlowLayout(1));
- ((Container)var15).add(this.chkOpenModel);
- this.chkOpenModel.setAlignmentY(0.0F);
- ((Container)var15).add(Box.createHorizontalStrut(8));
- ((Container)var15).add(this.btnDelete);
- ((Container)var15).add(this.btnApply);
- ((Container)var15).add(Box.createHorizontalStrut(8));
- ((Container)var15).add(this.btnCancel);
- ((Container)var15).add(this.btnSave);
- ((JComponent)var15).setBorder(BorderFactory.createEmptyBorder(0, 8, 8, 8));
- ((JDialog)this).getContentPane().add(var10, "North");
- this.enclosure = this.createEnclosure((JComponent)var13);
- if (this.enclosure != null) {
- var13 = this.enclosure;
- }
-
- ((JDialog)this).getContentPane().add((Component)var13, "Center");
- ((JDialog)this).getContentPane().add(var15, "South");
- ((Component)this).setSize(540, 310);
- ((Dialog)this).setTitle(var1);
- ((Window)this).addWindowListener(new 7(this));
- ((JDialog)this).setDefaultCloseOperation(0);
- ((Window)this).addWindowListener(new 8(this));
- if (this.mode == 2) {
- this.setCellOwner((String)this.popOwner.getSelectedItem(), (String)null);
- }
-
- return;
- }
-
- if (var9 == 0) {
- this.tabs = new JTabbedPane(1);
- Font var6 = UI.getAppFont();
- if (var6 != null) {
- this.tabs.setFont(var6);
- }
- }
-
- DefaultListModel var11 = new DefaultListModel();
- Enumeration var7 = this.getList(var9);
-
- while(var7.hasMoreElements()) {
- var11.addElement(var7.nextElement());
- }
-
- JList var8 = new JList(var11);
- var8.setPrototypeCellValue(UI.getString("cell.dialog.list.proto"));
- var8.setSelectionMode(0);
- var8.addListSelectionListener(this.listSelectionListener);
- this.tabs.addTab(var5, new JScrollPane(var8));
- ++var9;
- }
- }
-
- public void setURI(URI var1) {
- if (var1 != null && var1.equals(this.getSchemaDoc().getURI())) {
- var1 = null;
- }
-
- this.uri = var1;
- if (var1 == null) {
- this.lblPrompt.setIcon((Icon)null);
- this.lblPrompt.setToolTipText((String)null);
- } else {
- this.lblPrompt.setIcon(UI.getIcon(this.doc.isEditable(this.uri) ? "uri.gif" : "uri_ro.gif"));
- this.lblPrompt.setToolTipText(var1.getShortName());
- this.lblPrompt.setHorizontalTextPosition(2);
- }
-
- }
-
- public URI getURI() {
- return this.uri;
- }
-
- public void addNotify() {
- super.addNotify();
- ((RDialog)this).installDefault(this.btnSave);
- ((RDialog)this).installEscape(this.btnCancel);
- if (this.txtOwner != null) {
- ((RDialog)this).installDefault(this.txtOwner);
- }
-
- ((RDialog)this).installDefault(this.editor);
- }
-
- public void select(String var1) {
- Debug.assert(this.popOwner != null, "only defined when editing ...");
-
- for(int var2 = 0; var2 < this.popOwner.getItemCount(); ++var2) {
- if (this.popOwner.getItemAt(var2).equals(var1)) {
- this.popOwner.setSelectedIndex(var2);
- return;
- }
- }
-
- }
-
- public String getText() {
- return this.editor.getText();
- }
-
- public void setText(String var1) {
- this.editor.setText(var1);
- if (this.orgValue == null) {
- this.orgValue = var1;
- }
-
- }
-
- // $FF: synthetic method
- static void access$7000071(CellDialog var0, boolean var1) {
- var0.doOpenModel(var1);
- }
- }
-